- Author:
- Randall Britten <r.britten@auckland.ac.nz>
- Date:
- 2013-09-13 15:56:57+12:00
- Desc:
- Finally, got ODE to match Davenport plot nicely.
Using kb = 1, and deriving kf from K derived from textbook pK = 6.1, then deriving initialHCO3.
- Permanent Source URI:
- https://models.physiomeproject.org/workspace/178/rawfile/50e3114fd363d10b5b77daad447c7c82d1d65561/pH Homeostasis.nb
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 9.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 157, 7]
NotebookDataLength[ 13797, 380]
NotebookOptionsPosition[ 12523, 336]
NotebookOutlinePosition[ 12878, 352]
CellTagsIndexPosition[ 12835, 349]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
RowBox[{
RowBox[{"initialPh", "=", "7.4"}], ";"}]], "Input",
CellChangeTimes->{{3.588028935288416*^9, 3.588028947630732*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"initialHmolar", "=",
SuperscriptBox["10",
RowBox[{"-", "initialPh"}]]}], ";"}]], "Input",
CellChangeTimes->{
3.588026866945672*^9, 3.588027345006266*^9, {3.588027526578341*^9,
3.588027528457705*^9}, {3.5880275950477552`*^9, 3.588027623943098*^9}, {
3.588028951319806*^9, 3.588028955827985*^9}, {3.588029035381466*^9,
3.5880290360526953`*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"initialCO2mmHg", "=", "40"}], ";"}]], "Input",
CellChangeTimes->{{3.588028961701105*^9, 3.5880289701902637`*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"solubilityMolarPerMmhg", "=", "0.03"}], ";"}]], "Input",
CellChangeTimes->{{3.588011381426174*^9, 3.5880113944215317`*^9}, {
3.588029074748098*^9, 3.588029092014204*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"initialCO2molar", "=",
FractionBox[
RowBox[{"initialCO2mmHg", " ", "solubilityMolarPerMmhg"}], "1000"]}],
";"}]], "Input",
CellChangeTimes->{
3.588026852226532*^9, 3.588026943288953*^9, {3.5880275452983923`*^9,
3.58802754682507*^9}, {3.588027627063496*^9, 3.588027635999963*^9}, {
3.588028977886209*^9, 3.588029022197158*^9}, {3.588030010813973*^9,
3.5880300116060743`*^9}, {3.588032567434842*^9, 3.58803257466298*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"pKfromTextbook", "=", "6.1"}], ";"}]], "Input",
CellChangeTimes->{{3.588028556376622*^9, 3.58802856809615*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"KfromTextbook", "=",
SuperscriptBox["10",
RowBox[{"-", "pKfromTextbook"}]]}], ";"}]], "Input",
CellChangeTimes->{{3.588012103263454*^9, 3.588012122807251*^9},
3.588012563011053*^9, 3.588029064612894*^9, {3.5880300336289062`*^9,
3.588030043062311*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"pCO2", "[",
RowBox[{"pH_", ",", "HCO3_", ",", "K_"}], "]"}], ":=",
RowBox[{
FractionBox[
SuperscriptBox["10",
RowBox[{"-", "pH"}]], "K"],
FractionBox["HCO3", "solubilityMolarPerMmhg"]}]}], ";"}]], "Input",
CellChangeTimes->{{3.588011527879652*^9, 3.588011574290142*^9}, {
3.588011605456628*^9, 3.588011648639924*^9}, {3.5880119395225277`*^9,
3.588011941657003*^9}, {3.588029099237656*^9, 3.588029102004583*^9}, {
3.588029742140643*^9, 3.588029745588648*^9}, {3.5880298638730307`*^9,
3.588029870777545*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"s1", "=",
RowBox[{"Solve", "[",
RowBox[{
RowBox[{
RowBox[{"pCO2", "[",
RowBox[{"initialPh", ",", "bicarb", ",", "KfromTextbook"}], "]"}],
"\[Equal]", "initialCO2mmHg"}], ",", "bicarb"}], "]"}]}],
";"}]], "Input",
CellChangeTimes->{{3.588029559171054*^9, 3.588029602246809*^9}, {
3.5880296677996197`*^9, 3.588029670871666*^9}, {3.588029841433035*^9,
3.5880298489970417`*^9}, {3.588029899895668*^9, 3.5880299090510263`*^9}, {
3.588030291799016*^9, 3.588030310698834*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"initialHCO3molar", "=",
RowBox[{
RowBox[{"(",
RowBox[{
FractionBox["bicarb", "1000"], "/.", "s1"}], ")"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.588026722934659*^9, 3.588026782099729*^9}, {
3.5880268336268*^9, 3.5880268489163713`*^9}, {3.588027568622901*^9,
3.58802758199266*^9}, {3.588027639231584*^9, 3.588027643926466*^9}, {
3.588027675198184*^9, 3.588027680281584*^9}, {3.5880290081013393`*^9,
3.588029028437154*^9}, {3.588029622007265*^9, 3.5880296249739017`*^9}, {
3.58803018498455*^9, 3.588030198128169*^9}, {3.5880326710604887`*^9,
3.58803267804053*^9}}],
Cell[CellGroupData[{
Cell[BoxData["initialHCO3molar"], "Input",
CellChangeTimes->{{3.588031992744836*^9, 3.58803200132528*^9}}],
Cell[BoxData["0.023943147779626597`"], "Output",
CellChangeTimes->{3.588032002825076*^9, 3.58803258233351*^9,
3.588032679933127*^9, 3.588033188047248*^9}]
}, Open ]],
Cell[BoxData[
RowBox[{
RowBox[{"KbyInitial", "=",
FractionBox[
RowBox[{"initialHmolar", " ", "initialHCO3molar"}], "initialCO2molar"]}],
";"}]], "Input",
CellChangeTimes->{{3.5880276531793737`*^9, 3.5880276717256613`*^9}, {
3.588027720485572*^9, 3.588027766262341*^9}, 3.588028516161331*^9, {
3.588029040884555*^9, 3.5880290519690933`*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"pKbyInitial", " ", "=", " ",
RowBox[{"-",
RowBox[{"Log10", "[", "KbyInitial", "]"}]}]}], ";"}]], "Input",
CellChangeTimes->{{3.588027774043713*^9, 3.588027798668395*^9},
3.588028524865922*^9}],
Cell[CellGroupData[{
Cell[BoxData["pKbyInitial"], "Input",
CellChangeTimes->{{3.588032037251487*^9, 3.58803203890093*^9}}],
Cell[BoxData["6.1`"], "Output",
CellChangeTimes->{3.588032039452033*^9, 3.588032589096149*^9,
3.588032684029707*^9, 3.588033196149438*^9}]
}, Open ]],
Cell[BoxData[
RowBox[{"ContourPlot", "[",
RowBox[{
RowBox[{"pCO2", "[",
RowBox[{"pH", ",", "HCO3", ",", "KfromTextbook"}], "]"}], ",",
RowBox[{"{",
RowBox[{"pH", ",", "6.8", ",", "8"}], "}"}], ",",
RowBox[{"{",
RowBox[{"HCO3", ",", "0", ",", "100"}], "}"}], ",", "\[IndentingNewLine]",
RowBox[{"Contours", "\[Rule]",
RowBox[{"{",
RowBox[{"20", ",", "40", ",", "80"}], "}"}]}]}], "\[IndentingNewLine]",
"]"}]], "Input",
CellChangeTimes->{{3.588011703454999*^9, 3.5880117174087048`*^9}, {
3.5880117501903267`*^9, 3.588011883386302*^9}, {3.588012489020569*^9,
3.588012525930511*^9}, {3.58802796882439*^9, 3.5880279848488283`*^9}, {
3.5880303452699127`*^9, 3.588030350357877*^9}, {3.5880322855350943`*^9,
3.5880322876371603`*^9}, {3.5880324327627296`*^9, 3.588032437474824*^9}, {
3.588033246047154*^9, 3.5880332502935057`*^9}}],
Cell[BoxData[
RowBox[{"ContourPlot", "[",
RowBox[{
RowBox[{"pCO2", "[",
RowBox[{"pH", ",", "HCO3", ",", "KbyInitial"}], "]"}], ",",
RowBox[{"{",
RowBox[{"pH", ",", "6.8", ",", "8"}], "}"}], ",",
RowBox[{"{",
RowBox[{"HCO3", ",", "0", ",", "100"}], "}"}], ",", "\[IndentingNewLine]",
RowBox[{"Contours", "\[Rule]",
RowBox[{"{",
RowBox[{"20", ",", "40", ",", "80"}], "}"}]}]}], "\[IndentingNewLine]",
"]"}]], "Input",
CellChangeTimes->{{3.588011703454999*^9, 3.5880117174087048`*^9}, {
3.5880117501903267`*^9, 3.588011883386302*^9}, {3.588012489020569*^9,
3.588012525930511*^9}, {3.58802796882439*^9, 3.5880279848488283`*^9}, {
3.5880303452699127`*^9, 3.5880303962599163`*^9}, {3.58803326679*^9,
3.588033269893515*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"J", "[",
RowBox[{"CO2_", ",", "H_", ",", "HCO3_", ",", "K_"}], "]"}], ":=",
"\[IndentingNewLine]",
RowBox[{"With", "[", "\[IndentingNewLine]",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"kb", "=", "1"}], ",",
RowBox[{"kf", "=", "K"}]}], "}"}], ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"kf", " ", "CO2"}], "-",
RowBox[{"kb", " ", "H", " ", "HCO3"}]}]}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.588018786296715*^9, 3.588018834936934*^9}, {
3.58803064993417*^9, 3.588030702244219*^9}, {3.588030736556336*^9,
3.5880307392600393`*^9}}],
Cell[BoxData[
RowBox[{
RowBox[{"s2", "=",
RowBox[{"NDSolve", "[", "\[IndentingNewLine]",
RowBox[{
RowBox[{"{", "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"H", "'"}], "[", "t", "]"}], "\[Equal]",
RowBox[{"J", "[",
RowBox[{
RowBox[{"CO2", "[", "t", "]"}], ",",
RowBox[{"H", "[", "t", "]"}], ",",
RowBox[{"HCO3", "[", "t", "]"}], ",", "KfromTextbook"}], "]"}]}],
",", "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"HCO3", "'"}], "[", "t", "]"}], "==",
RowBox[{"J", "[",
RowBox[{
RowBox[{"CO2", "[", "t", "]"}], ",",
RowBox[{"H", "[", "t", "]"}], ",",
RowBox[{"HCO3", "[", "t", "]"}], ",", "KfromTextbook"}], "]"}]}],
",", "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"CO2", "'"}], "[", "t", "]"}], "\[Equal]", "0"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"H", "[", "0", "]"}], "\[Equal]", "initialHmolar"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"CO2", "[", "0", "]"}], "\[Equal]", "initialCO2molar"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"HCO3", "[", "0", "]"}], "\[Equal]", "initialHCO3molar"}]}],
"\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]",
RowBox[{"{",
RowBox[{"H", ",", "HCO3", ",", "CO2"}], "}"}], ",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "100"}], "}"}]}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.588018715475564*^9, 3.5880187162902117`*^9}, {
3.588018840234191*^9, 3.588018998732294*^9}, {3.588019038114986*^9,
3.5880191392578297`*^9}, {3.58801919229058*^9, 3.5880192037189703`*^9}, {
3.5880192708295116`*^9, 3.5880193124369717`*^9}, 3.588019393691187*^9, {
3.588019780866252*^9, 3.588019781165984*^9}, {3.5880267892763033`*^9,
3.588026813484517*^9}, {3.588027037873416*^9, 3.5880270428576*^9}, {
3.588027279146137*^9, 3.588027321720139*^9}, {3.5880273575433826`*^9,
3.5880273907936583`*^9}, {3.588027420862603*^9, 3.5880274750777607`*^9}, {
3.5880280434626217`*^9, 3.5880280573032427`*^9}, {3.5880291201567917`*^9,
3.588029129520361*^9}, {3.588029918088847*^9, 3.5880299189117603`*^9}, {
3.588030715718298*^9, 3.588030723876318*^9}}],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"{",
RowBox[{"initialHmolar", ",", "initialHCO3molar", ",", "initialCO2mmHg"}],
"}"}]], "Input",
CellChangeTimes->{{3.588032975002912*^9, 3.5880330035869226`*^9}}],
Cell[BoxData[
RowBox[{"{",
RowBox[{"3.981071705534969`*^-8", ",", "0.023943147779626597`", ",", "40"}],
"}"}]], "Output",
CellChangeTimes->{3.588033006686146*^9, 3.58803321041605*^9}]
}, Open ]],
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"Evaluate", "[",
RowBox[{
RowBox[{"{",
RowBox[{"-",
RowBox[{"Log10", "[",
RowBox[{"H", "[", "t", "]"}], "]"}]}], "}"}], "/.", "s2"}], "]"}],
",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "100"}], "}"}], ",",
RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}]], "Input",
CellChangeTimes->{{3.5880193595553627`*^9, 3.588019419808826*^9}, {
3.588019586814019*^9, 3.588019640555421*^9}, {3.588019692218618*^9,
3.588019694042286*^9}, {3.588019750250059*^9, 3.588019813783346*^9}, {
3.5880299242152042`*^9, 3.5880299245991173`*^9}, 3.588033297268264*^9}],
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"Evaluate", "[",
RowBox[{
RowBox[{"{",
RowBox[{"1000", " ", "solubilityMolarPerMmhg", " ",
RowBox[{"CO2", "[", "t", "]"}]}], "}"}], "/.", "s2"}], "]"}], ",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "100"}], "}"}], ",",
RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}]], "Input",
CellChangeTimes->{{3.5880193595553627`*^9, 3.588019419808826*^9}, {
3.588019586814019*^9, 3.588019640555421*^9}, {3.588019692218618*^9,
3.588019694042286*^9}, {3.588019750250059*^9, 3.58801983773449*^9}, {
3.588029927447898*^9, 3.588029928206938*^9}, {3.5880332289800587`*^9,
3.5880332302508907`*^9}}],
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"Evaluate", "[",
RowBox[{
RowBox[{"{",
RowBox[{"1000", " ",
RowBox[{"HCO3", "[", "t", "]"}]}], "}"}], "/.", "s2"}], "]"}], ",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "100"}], "}"}], ",",
RowBox[{"PlotRange", "\[Rule]", "All"}]}], "]"}]], "Input",
CellChangeTimes->{{3.5880193595553627`*^9, 3.588019419808826*^9}, {
3.588019586814019*^9, 3.588019640555421*^9}, {3.588019692218618*^9,
3.588019694042286*^9}, {3.588019750250059*^9, 3.5880198711418*^9}, {
3.588029931103701*^9, 3.5880299319987698`*^9}}]
},
WindowSize->{1440, 852},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
FrontEndVersion->"9.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (January 25, \
2013)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[557, 20, 143, 3, 28, "Input"],
Cell[703, 25, 400, 9, 33, "Input"],
Cell[1106, 36, 149, 3, 28, "Input"],
Cell[1258, 41, 208, 4, 28, "Input"],
Cell[1469, 47, 479, 10, 49, "Input"],
Cell[1951, 59, 147, 3, 28, "Input"],
Cell[2101, 64, 304, 7, 32, "Input"],
Cell[2408, 73, 594, 14, 53, "Input"],
Cell[3005, 89, 550, 13, 28, "Input"],
Cell[3558, 104, 677, 14, 49, "Input"],
Cell[CellGroupData[{
Cell[4260, 122, 107, 1, 28, "Input"],
Cell[4370, 125, 158, 2, 28, "Output"]
}, Open ]],
Cell[4543, 130, 361, 8, 49, "Input"],
Cell[4907, 140, 241, 6, 28, "Input"],
Cell[CellGroupData[{
Cell[5173, 150, 102, 1, 28, "Input"],
Cell[5278, 153, 142, 2, 28, "Output"]
}, Open ]],
Cell[5435, 158, 884, 18, 63, "Input"],
Cell[6322, 178, 776, 17, 63, "Input"],
Cell[7101, 197, 654, 17, 80, "Input"],
Cell[7758, 216, 2365, 52, 182, "Input"],
Cell[CellGroupData[{
Cell[10148, 272, 193, 4, 28, "Input"],
Cell[10344, 278, 191, 4, 35, "Output"]
}, Open ]],
Cell[10550, 285, 667, 16, 28, "Input"],
Cell[11220, 303, 689, 15, 28, "Input"],
Cell[11912, 320, 607, 14, 28, "Input"]
}
]
*)
(* End of internal cache information *)